<?php
class trancrearcompania extends Controller
{
	
	public function __construct()
	{
		parent::Controller();
		
		$this->load->library(array('chcalendario'));
		$this->load->model(array('mcompania','mestatus','metapas','mtiposeguimientos','mjurisdiccion','mresponsable','pendienteentrega','vtcompaniamodel',
	    'mservicios','mprovincia2','usuarios','mprocesos','mmodeloservicios','mmodeloetapas','entrega','mdgii','companiahistorico','mscore','TransaccionHistorico'));
	
	}

	 

	public function index()
	{
		
		$this->load->view('main',array(
                                       'content_page'        => 'crearcompania',
                                       'menutop'             => 1,
		                               'jurisdicciones'      => $this->mjurisdiccion->LoadJurisdiccion(),
		                               'responsables'        => $this->mresponsable->LoadResponsable(),
		                               'servicios'           => $this->mservicios->Loadservicios(),
		                               'provincias'          => $this->mprovincia2->LoadProvincias(),
		                               'usuarios'            => $this->usuarios->LoadUsuarios()));
	}
	
	
	public function addCompania()
	{
	
	
		$this->load->view('main', array('content_page'		=> 'crearcompanys',
										'menutop'			=> 1,
										'jurisdicciones'    => $this->mjurisdiccion->LoadJurisdiccion(),
										'responsables'      => $this->mresponsable->LoadResponsable(),
		                                'servicios'         => $this->mservicios->Loadservicios(),
		                                'provincias'        => $this->mprovincia2->LoadProvincias(),
										'usuarios'          => $this->usuarios->LoadUsuarios()));

	 }

	
	/**
	 * 
	 * Este script se encarga de tomar la hora del campo FechaSysProeceso
	 * y agregarla en un campo nuevo llamado TimeSysProceso.
	 *
	 */
	/*public function getHoraFromProcesos()
	{
		$procesos = $this->mprocesos->LoadProcesos();
		
		foreach ($procesos as $process){
			
				$fechaP = $process->getFechaProceso();
				$idProceso = $process->getIdProceso();
				
				$fechaE = explode(" ",$fechaP);
				
				$TimeS = $fechaE[1];
				
				$data = array('TimeSysProceso' => $TimeS);
						
				if($this->mprocesos->update($data, $idProceso) == true){
					
					echo "Los registros se han actualizados satisfactoriamente";
				}

				
			}
		
	}*/
	
	
	public function save()
	{
		$this->session->set_flashdata('status_title', 'Mantenimiento de Companias');
		$this->session->set_flashdata('status_url', 'main_tran');
		
		$idEntrada = $this->input->post('idregistro');
		$precio = $this->input->post('precio');
		$motivo = 0;
		$referenciaCompania = strtoupper($this->input->post('nombrecompania'));
		if($this->input->post('id')===false)
		{
			$fechausr_bad = explode('/',$this->input->post('date'));
			$fechausr = $fechausr_bad[2]."/".$fechausr_bad[0]."/".$fechausr_bad[1];
			if($res=$this->mcompania->createCompania($referenciaCompania,
			$this->input->post('servicio') ,
			$this->input->post('services'),
			$this->input->post('jurisdiccion'),
			$fechausr.' '.date('G:i:s'),
			date('Y/m/d G:i:s'),
			$this->session->userdata("LOGGED_USR_ID"),
			$this->input->post('responsable'),
			$this->input->post('provincia'),
			$this->input->post('telefono1'),
			$this->input->post('telefono2'),
			$this->input->post('email'),
			$this->input->post('conctato'),
			$this->session->userdata("LOGGED_USR_ID"),
			$this->session->userdata("LOGGED_USR_ID")))
			
			{
				$this->session->set_flashdata('status_message', 'El servicio ha sido agregada satisfactoriamente');
			}
			else
			{
				$this->session->set_flashdata('status_message', 'Ha ocurrido un error agregando el servicio. Intentelo nuevamente mas tarde o comuniquese con el administrador');
			}
			
			redirect('transaccionentrada/finalizar/'.$idEntrada.'/'.$motivo.'/'.$precio);
		}
		
		if ($this->input->post('id')!=false)
		{

			$compania=$this->mcompania->LoadCompaniaById($this->input->post('id'));
			if ($compania!=false)
			{
				$compania->setNombreCompania($this->input->post('nombrecompania'));
				$compania->setIdServicio($this->input->post('servicio'));
				$compania->setClasificacionS($this->input->post('services')? $this->input->post('services'):"Estandar");
				$compania->setIdJurisdiccion($this->input->post('jurisdiccion'));
				$compania->setIdResponsable($this->input->post('responsable'));
				$compania->setIdProvincia($this->input->post('provincia'));
				$compania->setTelefono1Compania($this->input->post('telefono1'));
				$compania->setTelefono2Compania($this->input->post('telefono2'));
				$compania->setEmailCompania($this->input->post('email'));
				$compania->setContacto($this->input->post('conctato'));
					
				if ($this->mcompania->updateCompania($compania)!=false)
				{
					$this->session->set_flashdata('status_message', 'el servicio ha sido actualizada satisfactoriamente');
				}
				else
				{
					$this->session->set_flashdata('status_message', 'Hubo un error al actualizar el servicio.Por favor intente mas tarde o contacte el administrador');
				}
			}
		}
		
		redirect('main_tran');
	}
	
	
	public function savecompanyEx()
	{
		$this->session->set_flashdata('status_title', 'Mantenimiento de Companias');
		$this->session->set_flashdata('status_url', 'main_tran');
		
		$referenciaCompania = strtoupper($this->input->post('nombrecompania'));
		if($this->input->post('id')===false)
		{
			$fechausr_bad = explode('/',$this->input->post('date'));
			$fechausr = $fechausr_bad[2]."/".$fechausr_bad[0]."/".$fechausr_bad[1];
			if($res=$this->mcompania->createCompania($referenciaCompania,
			$this->input->post('servicio'),
			'Standard',
			$this->input->post('jurisdiccion'),
			$fechausr.' '.date('G:i:s'),
			date('Y/m/d G:i:s'),
			$this->session->userdata("LOGGED_USR_ID"),
			$this->input->post('responsable'),
			$this->input->post('provincia'),
			$this->input->post('telefono1'),
			$this->input->post('telefono2'),
			$this->input->post('email'),
			$this->input->post('conctato'),
			$this->session->userdata("LOGGED_USR_ID"),
			$this->session->userdata("LOGGED_USR_ID")))
			
			{
				$this->session->set_flashdata('status_message', 'El servicio ha sido agregada satisfactoriamente');
			}
			else
			{
				$this->session->set_flashdata('status_message', 'Ha ocurrido un error agregando el servicio. Intentelo nuevamente mas tarde o comuniquese con el administrador');
			}
			
			redirect('main_tran');
		}
		
		if ($this->input->post('id')!=false)
		{

			$compania=$this->mcompania->LoadCompaniaById($this->input->post('id'));
			if ($compania!=false)
			{
				$compania->setNombreCompania($this->input->post('nombrecompania'));
				$compania->setIdServicio($this->input->post('servicio'));
				$compania->setIdJurisdiccion($this->input->post('jurisdiccion'));
				$compania->setIdResponsable($this->input->post('responsable'));
				$compania->setIdProvincia($this->input->post('provincia'));
				$compania->setTelefono1Compania($this->input->post('telefono1'));
				$compania->setTelefono2Compania($this->input->post('telefono2'));
				$compania->setEmailCompania($this->input->post('email'));
				$compania->setContacto($this->input->post('conctato'));
					
				if ($this->mcompania->updateCompania($compania)!=false)
				{
					$this->session->set_flashdata('status_message', 'el servicio ha sido actualizada satisfactoriamente');
				}
				else
				{
					$this->session->set_flashdata('status_message', 'Hubo un error al actualizar el servicio.Por favor intente mas tarde o contacte el administrador');
				}
			}
		}
		redirect('main_tran');

	}

	public function savestado()
	{
		 
		$ids = $this->input->post('idregistro');
		$motivo = $this->input->post('motivo');

		if($this->mcompania->updateCompania2($ids,$motivo) !== false)
		{
				
		 $date = date('Y-m-d');
		 $time = date('H:i:s');

		 //este es el caso de que sea para ventas
		 	
		 if ($motivo == 4) {
		 	
		 	$comen = 'Servicio para venta';
		 	$par = 13;

		 	$com = $this->mcompania->LoadCompaniaById($ids);
		 	$proc = $this->mprocesos->loadLastProceso($ids);
		 	$proc2 = $this->mprocesos->loadProcesoById($proc);
		 	 	
		 	$ultimatransaccion = $this->chcalendario->calcularDias($proc2->getFechaSys());
	
		 	$this->mprocesos->upDateProceso($proc,array('dias'   => $ultimatransaccion, 'Fechas'  => $date));
		 	$etapa_obj = $this->metapas->LoadEtapaById($this->input->post('etapa'));
		 	
		 	$dataVe = array("Etapa"                 => $par,
		 	                "FechaSistema"          => $date,
		 					"TimeSistema"			=> $time,
		 					"Referencia"			=> $com->getNombreCompania(),
		 	                "Responsable"           => $com->getIdResponsable(),
		 				    "FechaRegistro"			=> $com->getFechaUsrCompania(),
		 					"Tipo"					=> $com->getIdServicio(),
		 	                "Usuario"               => $this->session->userdata('LOGGED_USR_ID'),
		 	                "IdCompania"            => $proc2->getIdCompania());

		 	$dataHistorico = array(		 	  		
				    		  "IdCompania"           		=> $com->getIdCompania(),
				              "NombreCompania"      		=> $com->getNombreCompania(),
				              "IdServicio"           		=> $com->getIdServicio(),
		 	  				  "clasificacion_servicios"     => $com->getClasificacionS(),
				              "IdJurisdiccion"       		=> 1,
				              "FechaUsrCompania"     		=> $com->getFechaUsrCompania().' '.date('H:i:s'),
				              "FechaSysCompania"     		=> $com->getFechaSysCompania().' '.date('H:i:s'),
				              "IdUsuario"            		=> $com->getIdUsuario(),
				              "IdUsuarioHistorico"   		=> $this->session->userdata('LOGGED_USR_ID'),
				              "IdProvincia"          		=> 1,
				              "FechaHistorico"       		=> date('Y-m-d H:i:s'));
		 	
		 	 
		 	  
		 	  
           //$this->vtcompaniamodel->addRegistro($dataVe);
            	
             	             	     
     
             
             	     //$this->mprocesos->procesoAdd($dataProceso);
             	     //$this->mcompania->updateLastStage($dataProceso['IdEtapa'], 3, $dataProceso['IdCompania']);
             	     
             
		 $this->mcompania->eliminar($ids);
		  	
		 }elseif($motivo == 3){

		 	$com = $this->mcompania->LoadCompaniaById($ids);
		   
		 	       /* $data = array(
		 	        
		   	                 'Referencia'              => $com->getNombreCompania(),
		   	                 'Id_Servicio'             => $com->getIdServicio(),
		 	        		 'clasificacion_servicios' => $com->getClasificacionS(),
		   	                 'Id_Usuario'              => $this->session->userdata('LOGGED_USR_ID'),
		   	                 'Telefono1'               => $com->getTelefono1Compania(),
		   	                 'Telefono2'               => $com->getTelefono2Compania(),
		   	                 'Email'                   => $com->getEmailCompania(),
		   	                 'Contacto'                => $com->getContacto(),
		   	                 'date'                    => $date);
		 	
		 	
		 	  		$dataHistorico = array(
		 	  		
				    		  "IdCompania"           		=> $com->getIdCompania(),
				              "NombreCompania"      		=> $com->getNombreCompania(),
				              "IdServicio"           		=> $com->getIdServicio(),
		 	  				  "clasificacion_servicios"     => $com->getClasificacionS(),
				              "IdJurisdiccion"       		=> 1,
				              "FechaUsrCompania"     		=> $com->getFechaUsrCompania().' '.date('H:i:s'),
				              "FechaSysCompania"     		=> $com->getFechaSysCompania().' '.date('H:i:s'),
				              "IdUsuario"            		=> $com->getIdUsuario(),
				              "IdUsuarioHistorico"   		=> $this->session->userdata('LOGGED_USR_ID'),
				              "IdProvincia"          		=> 1,
				              "FechaHistorico"       		=> date('Y-m-d H:i:s'));

		 	          /*if($this->pendienteentrega->crearRegistro($data) == true){
		 	 	  	   
		 	 	       }*/
		 	  		
		 	 	        	
		 	 	                  $this->mcompania->eliminar($ids);
		 	 	        
		 	 	        
			 }
		 	
             redirect('main_tran');

		}
	}
	
	
	public function entregarf()
	{
		$this->load->view('main', array('content_page' => 'status','menutop' => 1));
	}

	public function status()
	{
		$this->load->view('main', array('content_page' => 'status','menutop' => 1));
	}

	public function laborables($mes,$anio)
	{
		$Dias_laborables=0;
		$Dias_totales = date("t", mktime(0,0,0,$mes,1,$anio)); // Los días que tiene ese mes
		for ($i=1; $i <= $Dias_totales; $i++)
		{
			if ((date("w", mktime(0,0,0,$mes,$i,$anio)) < 6) && (date("w", mktime(0,0,0,$mes,$i,$anio)) > 0))
			$Dias_laborables++;
		}
		return $Dias_laborables;
	}

	public function CalcularDias($fechapar,$fechaact)
	{

		$fechapar = explode(' ',$fechapar);
		$fechapar_arr=explode('-',$fechapar[0]);
		$fechapar_mk=mktime(0,0,0,$fechapar_arr[1],$fechapar_arr[2],$fechapar_arr[0]);
		$fechapar_mk=intval($fechapar_mk);

		$fechaact = explode(' ',$fechaact);
		$fechaact_arr=explode('-',$fechaact[0]);
		if ($fechaact_arr[1] > 0) {
			$fechaact_mk=mktime(0,0,0,$fechaact_arr[1],$fechaact_arr[2],$fechaact_arr[0]);
		}else{
			$fechaact_mk=mktime(0,0,0,date('m'),date('d'),date('y'));
		}

		$fechaact_mk=intval($fechaact_mk);

		$segundos_diferencia =$fechaact_mk-$fechapar_mk;
		$dias_diferencia = $segundos_diferencia / (60 * 60 * 24);
		return  $dias_diferencia;

	}
	
	
	public function getDocumentosView()
	{
		$this->load->view('main', array('content_page' => 'compania_documentos_list','menutop' => 1));
	}

	public function getCompaniasDocumentos($id = false)
	{
		$page = $this->input->post('page') ? $this->input->post('page') : 1;
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'IdCompania';
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'asc';
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 200;

		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;
		 
		$referencia = false;
		$etapa      = false;
		$dataEtapa = false;
		$filtroUsuario = 0;

		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		header("Cache-Control: no-cache, must-revalidate" );
		header("Pragma: no-" );

		if (strlen($id) > 0) {
				
			$search = explode('-',$id);
			$referencia = $search[0];
            $filtroUsuario =  intval($search[2]);
			
			if ($search[1] > 0 ) {
				$etapa      =  intval($search[1]);
			}else{

			}
					
		}

		$records = $this->mcompania->LoadCompanias($start, $limit, $sortname, $sortorder);

		if ($etapa != false) {
			$dataEtapa = array();

			foreach ($records as $k){
				$etapa_s = 0;
				$proseso = $this->mprocesos->loadLastProceso($k->getIdCompania());
				$proceso = $this->mprocesos->loadProcesoById($proseso);
				 
				if ($proceso->getIdEtapa() == $etapa) {
					$dataEtapa[] = $proceso->getIdCompania();
				}
				 
			}
	   
		}

	    $where = array(2,7);
		$records = $this->mcompania->loadCompaniasWhereIn($where, $start, $limit, $sortname, $sortorder, $referencia, $dataEtapa);

		$totalRecords = count($records);

		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		'page'		=> $page,
		'total'		=> $totalPages,
		'records'	=> $totalRecords,
		'rows'		=> array());
		
		if($records != false){
						
			foreach($records as $compania){
				
				
				if (0 < $filtroUsuario && $compania->getIdUsuario() != $filtroUsuario)
				      continue;
				
				$proceso = $this->mprocesos->loadLastProceso($compania->getIdCompania());
				
				$servicio = $this->mservicios->LoadServicioById($compania->getIdServicio());
				$jurisdiccion = $this->mjurisdiccion->LoadjurisdiccionById($compania->getIdJurisdiccion());
				$usuario = $this->usuarios->LoadUsuarioById($compania->getIdUsuario());
				$user = $usuario->getUsernameUsuario();

				$procesoDgii = $this->mprocesos->loadProcesoById($proceso);
				
				if ($compania->getIdServicio() == 7 && $procesoDgii->getIdEtapa() == 3) {
					continue;
				}
				
				$provincia = $this->mprovincia2->LoadCompaniaById($compania->getIdProvincia());

		        $proceso_obj = $this->mprocesos->loadProcesoById(intval($proceso));
				$estatus_obj = $this->mestatus->LoadEstatusById($proceso_obj->getIdEstatus());
				$etapa_obj = $this->metapas->LoadEtapaById($proceso_obj->getIdEtapa());
	
				/**
				 * 
				 * @var fechaProcesoScuenci
				 * 
				 * Cactura la pimera fecha de una secuencia de etapas unida 
				 * 
				 */
				
				 $procesoFecha = $this->mprocesos->loadProcesosByArray(array('IdCompania' => $compania->getIdCompania()));
				 $procesoFecha = array_reverse($procesoFecha);
				 
				 foreach ($procesoFecha as $k){
				 	  if ($procesoDgii->getIdEtapa() == $k->getIdEtapa()){
				 	     	$fechaProcesoScuenci = $k->getFechaSys();  
				 	  }else{
				 	  	 break;
				 	  }         
				 }
			
				 
				$ultimatransaccion = $this->chcalendario->calcularDias($fechaProcesoScuenci);
				
				$dias =  $this->chcalendario->calcularDias($compania->getFechaUsrCompania());
				$porciento_bruto = ($dias/$servicio->getTiempoServicio())*100;
				
				$colores_array_etapa = $this->mmodeloetapas->loadModeloEtapas();
				$colores_etapa=$colores_array_etapa[0];
				 

				$bruto_etapa = ($ultimatransaccion/$etapa_obj->GetTiempoEstimado())*100;

				if ($bruto_etapa >= $colores_etapa->getVerdeModelo() and $bruto_etapa < $colores_etapa->getAmarilloModelo() or $bruto_etapa==0 or $bruto_etapa<0){
					  $imagen_etapa = "<img src='http://company24h.com/c24h/public/images/1.png'/>";
				}elseif($bruto_etapa>=$colores_etapa->getAmarilloModelo() and $bruto_etapa<$colores_etapa->getRojoModelo()){
					$imagen_etapa="<img src='http://company24h.com/c24h/public/images/2.png'/>";
				}else{
					$imagen_etapa="<img src='http://company24h.com/c24h/public/images/3.png'/>";
				}

				$colores_array_servicio = $this->mmodeloservicios->loadModeloServicios();
				$colores_servicios = $colores_array_servicio[0];

				if (($porciento_bruto>=$colores_servicios->getVerdeModelo() and $porciento_bruto < $colores_servicios->getAmarilloModelo()) or $porciento_bruto<=0){
					$imagen="<img src='http://company24h.com/c24h/public/images/1.png'/>";
				}elseif ($porciento_bruto >=$colores_servicios->getAmarilloModelo() and $porciento_bruto < $colores_servicios->getRojoModelo()){
					$imagen="<img src='http://company24h.com/c24h/public/images/2.png'/>";
				}else{
					$imagen="<img src='http://company24h.com/c24h/public/images/3.png'/>";
				}
				
				$resp=$this->mresponsable->LoadEstatusById($compania->getIdResponsable());


				$fecha = explode('-',$compania->getFechaUsrCompania());
				$fecha_final = $fecha[2].'-'.$fecha[1].'-'.$fecha[0];

				$fechar = explode('-',$compania->getFechaSysCompania());
				$fecha_finalr = $fechar[2].'-'.$fechar[1].'-'.$fechar[0];
				
				/**
				 * 
				 * Evaluar estatus de los documentos generados
				 * @var unknown_type
				 */
				$estatusDocumento = $compania->getEstatusCompania();
		
				if($estatusDocumento == 0){
					
					$imagen_documento = "<img src='http://company24h.com/c24h/public/images/datos1.png'/>";
					
					
				}elseif ($estatusDocumento == 1)
				{
					
					$imagen_documento = "<img src='http://company24h.com/c24h/public/images/datos2.png'/>";
					
					
				}		
				
				$arr = $json_output['rows'][] = array('IdCompania'         => $compania->getIdCompania(),
				                                      'NombreCompania'     => "<strong>".$compania->getNombreCompania()."</strong>",
				                                      'IdServicio'         => $servicio->getNombreServicio(),
													  'cServicio'		   => $compania->getClasificacionS(),
				                                      'IdJurisdiccion'     => $jurisdiccion->getNombreJurisdiccion(),
				                                      'FechaUsrCompania'   => $fecha_final,
				                                      'IdEtapa'            => $etapa_obj->GetNombre(),
				                                      'IdEstatus'          => $estatus_obj->getNombre(),
				                                      'Etapa'              => $imagen_etapa,
				                                      'Total'              => $imagen,
				                                      'provincia'          => $provincia->getDescriccion(),
				                                      'User'               => $user,
				                                      'dias'               => intval($ultimatransaccion),
				                                      'Responsable'        => $resp->getNombre(),
						                              'servicioid'         => $compania->getIdServicio(),
													  'estatusDoc'         => $imagen_documento,
				                                      'conctato'           => $fecha_finalr);
				}
			
		}

		$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;
		
	}
	
	public function data($id = false)
	{

		$page = $this->input->post('page') ? $this->input->post('page') : 1;
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'IdCompania';
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'asc';
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 200;

		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;
		 
		$referencia = false;
		$etapa      = false;
		$dataEtapa = false;
		$filtroUsuario = 0;

		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		header("Cache-Control: no-cache, must-revalidate" );
		header("Pragma: no-" );

		if (strlen($id) > 0) {
				
			$search = explode('-',$id);
			$referencia = $search[0];
            $filtroUsuario =  intval($search[2]);
			
			if ($search[1] > 0 ) {
				$etapa      =  intval($search[1]);
			}else{

			}
					
		}

		$records = $this->mcompania->LoadCompanias($start, $limit, $sortname, $sortorder);

                    /** Captura el ultimo id del proceso de cada servicio**/ 
		if ($etapa != false) {
			$dataEtapa = array();

			foreach ($records as $k){
				$etapa_s = 0;
				$proseso = $this->mprocesos->loadLastProceso($k->getIdCompania());
				$proceso = $this->mprocesos->loadProcesoById($proseso);
				 
				if ($proceso->getIdEtapa() == $etapa) {
					$dataEtapa[] = $proceso->getIdCompania();
				}
				 
			}
	   
		}

	
		$records = $this->mcompania->LoadCompanias($start, $limit, $sortname, $sortorder, $referencia, $dataEtapa);

		$totalRecords = count($records);

		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		'page'		=> $page,
		'total'		=> $totalPages,
		'records'	=> $totalRecords,
		'rows'		=> array());
		
		if($records != false){
						
			foreach($records as $compania){
				
				
				if (0 < $filtroUsuario && $compania->getIdUsuario() != $filtroUsuario)
				      continue;
				
				$proceso = $this->mprocesos->loadLastProceso($compania->getIdCompania());
				
				$servicio = $this->mservicios->LoadServicioById($compania->getIdServicio());
				$jurisdiccion = $this->mjurisdiccion->LoadjurisdiccionById($compania->getIdJurisdiccion());
				$usuario = $this->usuarios->LoadUsuarioById($compania->getIdUsuario());
				$user = $usuario->getUsernameUsuario();

				$procesoDgii = $this->mprocesos->loadProcesoById($proceso);
				
				if ($compania->getIdServicio() == 7 && $procesoDgii->getIdEtapa() == 3) {
					continue;
				}
				
				$provincia = $this->mprovincia2->LoadCompaniaById($compania->getIdProvincia());

		        $proceso_obj = $this->mprocesos->loadProcesoById(intval($proceso));
				$estatus_obj = $this->mestatus->LoadEstatusById($proceso_obj->getIdEstatus());
				$etapa_obj = $this->metapas->LoadEtapaById($proceso_obj->getIdEtapa());
	
				/**
				 * 
				 * @var fechaProcesoScuenci
				 * 
				 * Cactura la pimera fecha de una secuencia de etapas unida 
				 * 
				 */
				
				 $procesoFecha = $this->mprocesos->loadProcesosByArray(array('IdCompania' => $compania->getIdCompania()));
				 $procesoFecha = array_reverse($procesoFecha);
				 
				 foreach ($procesoFecha as $k){
				 	  if ($procesoDgii->getIdEtapa() == $k->getIdEtapa()){
				 	     	$fechaProcesoScuenci = $k->getFechaSys();  
				 	  }else{
				 	  	 break;
				 	  }         
				 }
			
				 
				$ultimatransaccion = $this->chcalendario->calcularDias($fechaProcesoScuenci);
				
				$dias =  $this->chcalendario->calcularDias($compania->getFechaUsrCompania());
				$porciento_bruto = ($dias/$servicio->getTiempoServicio())*100;
				
				$colores_array_etapa = $this->mmodeloetapas->loadModeloEtapas();
				$colores_etapa=$colores_array_etapa[0];
				 

				$bruto_etapa = ($ultimatransaccion/$etapa_obj->GetTiempoEstimado())*100;

				if ($bruto_etapa >= $colores_etapa->getVerdeModelo() and $bruto_etapa < $colores_etapa->getAmarilloModelo() or $bruto_etapa==0 or $bruto_etapa<0){
					  $imagen_etapa = "<img src='http://code.company24h.com/public/images/1.png'/>";
				}elseif($bruto_etapa>=$colores_etapa->getAmarilloModelo() and $bruto_etapa<$colores_etapa->getRojoModelo()){
					$imagen_etapa="<img src='http://code.company24h.com/public/images/2.png'/>";
				}else{
					$imagen_etapa="<img src='http://code.company24h.com/public/images/3.png'/>";
				}

				$colores_array_servicio = $this->mmodeloservicios->loadModeloServicios();
				$colores_servicios = $colores_array_servicio[0];

				if (($porciento_bruto>=$colores_servicios->getVerdeModelo() and $porciento_bruto < $colores_servicios->getAmarilloModelo()) or $porciento_bruto<=0){
					$imagen="<img src='http://code.company24h.com/public/images/1.png'/>";
				}elseif ($porciento_bruto >=$colores_servicios->getAmarilloModelo() and $porciento_bruto < $colores_servicios->getRojoModelo()){
					$imagen="<img src='http://code.company24h.com/public/images/2.png'/>";
				}else{
					$imagen="<img src='http://code.company24h.com/public/images/3.png'/>";
				}
				
				$resp=$this->mresponsable->LoadEstatusById($compania->getIdResponsable());


				$fecha = explode('-',$compania->getFechaUsrCompania());
				$fecha_final = $fecha[2].'-'.$fecha[1].'-'.$fecha[0];

				$fechar = explode('-',$compania->getFechaSysCompania());
				$fecha_finalr = $fechar[2].'-'.$fechar[1].'-'.$fechar[0];
				
				/**
				 * 
				 * Evaluar estatus de los documentos generados
				 * @var unknown_type
				 */
				$estatusDocumento = $compania->getEstatusCompania();
		
				if($estatusDocumento == 0){
					
					$imagen_documento = "<img src='http://code.company24h.com/public/images/datos1.png'/>";
	
				}elseif ($estatusDocumento == 1)
				{
					$imagen_documento = "<img src='http://code.company24h.com/public/images/datos2.png'/>";

				}		
				
				$arr = $json_output['rows'][] = array('IdCompania'         => $compania->getIdCompania(),
				                                      'NombreCompania'     => "<strong>".$compania->getNombreCompania()."</strong>",
				                                      'IdServicio'         => $servicio->getNombreServicio(),
													  'cServicio'		   => $compania->getClasificacionS(),
				                                      'IdJurisdiccion'     => $jurisdiccion->getNombreJurisdiccion(),
				                                      'FechaUsrCompania'   => $fecha_final,
				                                      'IdEtapa'            => $etapa_obj->GetNombre(),
				                                      'IdEstatus'          => $estatus_obj->getNombre(),
				                                      'Etapa'              => $imagen_etapa,
				                                      'Total'              => $imagen,
				                                      'provincia'          => $provincia->getDescriccion(),
				                                      'User'               => $user,
				                                      'dias'               => intval($ultimatransaccion),
				                                      'Responsable'        => $resp->getNombre(),
						                              'servicioid'         => $compania->getIdServicio(),
													  'estatusDoc'         => $imagen_documento,
				                                      'conctato'           => $fecha_finalr);
				}
			
		}

		$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;

	}
	
	
	
	/**
	 * 
	 * Funcion para generar Excel
	 */
    public function generarExcel($parametros = false)
    {
    	
        $referencia = false;
    	$etapa = false;
    	$usuario = false;
    	
    	if (strlen($parametros) > 0) {
				
			$parametros = explode('-',$parametros);
			$referencia = $parametros[0];
            $usuario =  intval($parametros[2]);
			
			if ($parametros[1] > 0 ) {
				$etapa      =  intval($parametros[1]);
			}else{

			}
					
		}
		
		
    	$body = "";

    	$idCompania = "";
    	$servicios = "";
    	$clasificacion = "";
    	$fRegistro = "";
    	$fSistema = "";
    	$diasCompania = "";
    	$etapaComp = "";
    	$estatus   = "";
    	$etapascolor = "";
    	$totaletapa = "";
    	$usuariosCom = ""; 
    	$reponsable = "";
    	
    	$records = $this->mcompania->LoadCompaniasExcel($referencia, $etapa, $usuario);
    	
    	
    	
    	foreach ($records as $compania){
    		
				$proceso = $this->mprocesos->loadLastProceso($compania->getIdCompania());
				
				$servicio = $this->mservicios->LoadServicioById($compania->getIdServicio());
				$jurisdiccion = $this->mjurisdiccion->LoadjurisdiccionById($compania->getIdJurisdiccion());
				$usuario = $this->usuarios->LoadUsuarioById($compania->getIdUsuario());
				$user = $usuario->getUsernameUsuario();

				$procesoDgii = $this->mprocesos->loadProcesoById($proceso);
				
				if ($compania->getIdServicio() == 7 && $procesoDgii->getIdEtapa() == 3) {
					continue;
				}
				
		
				$provincia = $this->mprovincia2->LoadCompaniaById($compania->getIdProvincia());

		        $proceso_obj = $this->mprocesos->loadProcesoById(intval($proceso));
				$estatus_obj = $this->mestatus->LoadEstatusById($proceso_obj->getIdEstatus());
				$etapa_obj = $this->metapas->LoadEtapaById($proceso_obj->getIdEtapa());
	
				/**
				 * 
				 * @var fechaProcesoScuenci
				 * 
				 * Cactura la pimera fecha de una secuencia de etapas unida 
				 * 
				 */
				
				 $procesoFecha = $this->mprocesos->loadProcesosByArray(array('IdCompania' => $compania->getIdCompania()));
				 $procesoFecha = array_reverse($procesoFecha);
				 
				 foreach ($procesoFecha as $k){
				 	  if ($procesoDgii->getIdEtapa() == $k->getIdEtapa()){
				 	     	$fechaProcesoScuenci = $k->getFechaSys();  
				 	  }else{
				 	  	 break;
				 	  }         
				 }
			
				 
				$ultimatransaccion = $this->chcalendario->calcularDias($fechaProcesoScuenci);
				
				$dias =  $this->chcalendario->calcularDias($compania->getFechaUsrCompania());
				$porciento_bruto = ($dias/$servicio->getTiempoServicio())*100;
				
				$colores_array_etapa = $this->mmodeloetapas->loadModeloEtapas();
				$colores_etapa=$colores_array_etapa[0];
				 
				$bruto_etapa = ($ultimatransaccion/$etapa_obj->GetTiempoEstimado())*100;

				if ($bruto_etapa >= $colores_etapa->getVerdeModelo() and $bruto_etapa < $colores_etapa->getAmarilloModelo() or $bruto_etapa==0 or $bruto_etapa<0){
					  $imagen_etapa = "<span style = 'color:green'>1</span>";
				}elseif($bruto_etapa>=$colores_etapa->getAmarilloModelo() and $bruto_etapa<$colores_etapa->getRojoModelo()){
					$imagen_etapa="<span style = 'color:yellow'>2</span>";
				}else{
					$imagen_etapa="<span style = 'color:red'>3</span>";
				}

				$colores_array_servicio = $this->mmodeloservicios->loadModeloServicios();
				$colores_servicios = $colores_array_servicio[0];

				if (($porciento_bruto>=$colores_servicios->getVerdeModelo() and $porciento_bruto < $colores_servicios->getAmarilloModelo()) or $porciento_bruto<=0){
					$imagen="<span style = 'color:green'>1</span>";
				}elseif ($porciento_bruto >=$colores_servicios->getAmarilloModelo() and $porciento_bruto < $colores_servicios->getRojoModelo()){
					$imagen="<span style = 'color:yellow'>2</span>";
				}else{
					$imagen="<span style = 'color:red'>3</span>";
				}
				
				$resp=$this->mresponsable->LoadEstatusById($compania->getIdResponsable());

				$fecha = explode('-',$compania->getFechaUsrCompania());
				$fecha_final = $fecha[2].'-'.$fecha[1].'-'.$fecha[0];

				$fechar = explode('-',$compania->getFechaSysCompania());
				$fecha_finalr = $fechar[2].'-'.$fechar[1].'-'.$fechar[0];

				$idCompania .=  $compania->getIdCompania()."<br>";
				$servicios  .=  $servicio->getNombreServicio(). "<br>";
				$clasificacion .= $compania->getClasificacionS()."<br>";
				$fRegistro     .= $fecha_final."<br>";
				$fSistema      .= $fecha_finalr."<br>";
				$diasCompania  .= $ultimatransaccion."<br>";
				$etapaComp     .= $etapa_obj->GetNombre()."<br>";
				$estatus       .= $estatus_obj->getNombre()."<br>";
				$etapascolor   .= $imagen_etapa."<br>";
				$totaletapa    .= $imagen."<br>";
				$usuariosCom   .= $user."<br>";
				$reponsable    .= $resp->getNombre()."<br>";
				
	
    	}
   		
    	
    	$body = "<table>
		
					<tr>
						<th>Id Compania</th>
						<th>Servicio</th>
						<th>Clasifiacacion</th>
						<th>Registro</th>
						<th>Registro Fecha</th>
						<th>Dias</th>
						<th>Etapa Actual</th>
						<th>Estatus</th>
						<th>Etapa</th>
						<th>Total Etapa</th>
						<th>Usuario</th>
						<th>Responsable</th>
					</tr>
					
					<tr>
						<td>$idCompania</td>
						<td>$servicios</td>
						<td>$clasificacion</td>
						<td>$fRegistro</td>
						<td>$fSistema</td>
						<td>$diasCompania</td>
						<td>$etapaComp</td>
						<td>$estatus</td>
						<td>$etapascolor</td>
						<td>$totaletapa</td>
						<td>$usuariosCom</td>
						<td>$reponsable</td>
					</tr>
		</table>";
		
		
		$filename = "seguimiento.xls";
		
	    $open = fopen($filename,"a") or die("Hubo un error");
        fputs($open,$body);
        fclose($open);
       
		header('Content-type: application/vnd.ms-excel');
		header("Content-Disposition: attachment; filename=seguimiento.xls");
		header("Pragma: no-cache");
		header("Expires: 0");
		
    	echo $body;
    	
    }
    
    
    
	public function dataDgii($id = false)
	{

		$page = $this->input->post('page') ? $this->input->post('page') : 1;
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'IdCompania';
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'asc';
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 200;

		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;
		 
		$referencia = false;
		$etapa      = false;
		$dataEtapa = false;

		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		header("Cache-Control: no-cache, must-revalidate" );
		header("Pragma: no-" );

		if (strlen($id) > 0) {
				
			$search = explode('-',$id);
			$referencia = $search[0];
				
			if ($search[1] > 0 ) {
				$etapa      =  intval($search[1]);
			}else{

			}
				
				
		}

		$records = $this->mcompania->LoadCompanias($start, $limit, $sortname, $sortorder);

		if ($etapa != false) {
			$dataEtapa = array();

			foreach ($records as $k){
				$etapa_s = 0;
				$proseso = $this->mprocesos->loadLastProceso($k->getIdCompania());
				$proceso = $this->mprocesos->loadProcesoById($proseso);
				 
				if ($proceso->getIdEtapa() == $etapa) {
					$dataEtapa[] = $proceso->getIdCompania();
				}
				 
			}
	   
		}

	  
			
		$records = $this->mcompania->LoadCompanias($start, $limit, $sortname, $sortorder, $referencia, $dataEtapa);


		$totalRecords = count($records);

		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		'page'		=> $page,
		'total'		=> $totalPages,
		'records'	=> $totalRecords,
		'rows'		=> array()
		);
		if($records != false)
		{
			foreach($records as $compania)
			{
				$proceso=$this->mprocesos->loadLastProceso($compania->getIdCompania());
				$servicio=$this->mservicios->LoadServicioById($compania->getIdServicio());
				$jurisdiccion=$this->mjurisdiccion->LoadjurisdiccionById(
				$compania->getIdJurisdiccion());
				$tiemposervicio=$servicio->getTiempoServicio();
				$usuario=$this->usuarios->LoadUsuarioById($compania->getIdUsuario());
				$user=$usuario->getUsernameUsuario();

				$procesoDgii=$this->mprocesos->loadProcesoById($proceso);

				if ($compania->getIdServicio() != 7 || $procesoDgii->getIdEtapa() != 3) {
					continue;
				}

				$proceso=intval($proceso);
				if ($proceso=='' or !isset($proceso) or $proceso==0)
				{

					$proceso='Inicio';
					$etapa_str=$proceso;
					$estatus_str='Creada';
					$etapa_tiempo=1;
					$ultimatransaccion=$this->CalcularDias($compania->getFechaUsrCompania(),
					date('Y-m-d'));
				}
				else
				{
					$proceso_obj=$this->mprocesos->loadProcesoById($proceso);
						
					$etapa=$proceso_obj->getIdEtapa();
					$estatus=$proceso_obj->getIdEstatus();
					$estatus_obj=$this->mestatus->LoadEstatusById($estatus);
					$estatus_str=$estatus_obj->getNombre();
					$etapa_obj=$this->metapas->LoadEtapaById($etapa);
						
					$etapa_str=$etapa_obj->GetNombre();
						
					$etapa_tiempo=$etapa_obj->GetTiempoEstimado();
					$nPrueba = "2010-08-11 00-00-00";
						
						
					$ultimatransaccion=$this->CalcularDias($proceso_obj->getFechaSys(),
					date('Y-m-d'));
				}
				$dias=$this->CalcularDias($compania->getFechaUsrCompania(),date('Y-m-d'));
				$porciento_bruto=($dias/$tiemposervicio)*100;
				//echo $porciento_bruto."<br/>";

				$colores_array_etapa=$this->mmodeloetapas->loadModeloEtapas();
				$colores_etapa=$colores_array_etapa[0];
				 
				//dia ultima etapa
					
				//  $diasutm = $this->CalcularDias($procesofecha,date('Y-m-d'));


				$bruto_etapa=($ultimatransaccion/$etapa_tiempo)*100;

				if ($bruto_etapa>=$colores_etapa->getVerdeModelo() and $bruto_etapa < $colores_etapa->getAmarilloModelo() or $bruto_etapa==0 or $bruto_etapa<0)
				{
					$imagen_etapa="<img src='http://company24h.com/c24h/public/images/1.png'/>";
				}elseif($bruto_etapa>=$colores_etapa->getAmarilloModelo() and $bruto_etapa<$colores_etapa->getRojoModelo() )
				{
					$imagen_etapa="<img src='http://company24h.com/c24h/public/images/2.png'/>";
				}else
				{
					$imagen_etapa="<img src='http://company24h.com/c24h/public/images/3.png'/>";
				}

				$colores_array_servicio=$this->mmodeloservicios->loadModeloServicios();
				$colores_servicios=$colores_array_servicio[0];

				if (($porciento_bruto>=$colores_servicios->getVerdeModelo() and $porciento_bruto < $colores_servicios->getAmarilloModelo()) or $porciento_bruto<=0)
				{
					$imagen="<img src='http://company24h.com/c24h/public/images/1.png'/>";
				}
				elseif ($porciento_bruto >=$colores_servicios->getAmarilloModelo() and $porciento_bruto < $colores_servicios->getRojoModelo())
				{
					$imagen="<img src='http://company24h.com/c24h/public/images/2.png'/>";
				}
				else
				{
					$imagen="<img src='http://company24h.com/c24h/public/images/3.png'/>";
				}
				$responsable=$compania->getIdResponsable();
				$resp=$this->mresponsable->LoadEstatusById($responsable);

				$fecha=explode('-',$compania->getFechaUsrCompania());
				$fecha_final=$fecha[2].'-'.$fecha[1].'-'.$fecha[0];

				$fechar=explode('-',$compania->getFechaSysCompania());
				$fecha_finalr=$fechar[2].'-'.$fechar[1].'-'.$fechar[0];

				$arr = $json_output['rows'][] = array
				(
				'IdCompania'=>$compania->getIdCompania(),
				'NombreCompania'=>"<strong>".$compania->getNombreCompania()."</strong>",
				'IdServicio' => $servicio->getNombreServicio(),
				'IdJurisdiccion'=>$jurisdiccion->getNombreJurisdiccion(),
				'FechaUsrCompania'=>$fecha_final,
				'IdEtapa'=>$etapa_str,
				'IdEstatus'=>$estatus_str,
				'Etapa'=>$imagen_etapa,
				'Total'=>$imagen,
				'User'=>$user,
				'dias'=>intval($ultimatransaccion),
				'dias2'=>'sa',
				'Responsable'=>$resp->getNombre(),
				'conctato'=>$fecha_finalr

				);
			}
		}

		$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;

	}

	
	public function datahistorico($id = false)
	{

		$page = $this->input->post('page') ? $this->input->post('page') : 1; // Pagina Actual o 1 por default
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : 'IdCompania'; // Columna para el order by
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'desc'; // Orden (asc|desc)
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 100;
		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;

		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		header("Cache-Control: no-cache, must-revalidate" );
		header("Pragma: no-cache" );

		$records = $this->companiahistorico->loadCompaniaHistorico($start, $limit, $sortname, $sortorder);

		$totalRecords = count($records);

		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		'page'		=> $page,
		'total'		=> $totalPages,
		'records'	=> $totalRecords,
		'rows'		=> array()
		);

		if($records != false)
		{
			foreach($records as $objetos){

				$servicio = $this->mservicios->LoadServicioById($objetos->getIdServicio());
				$propiedades = $this->mprovincia2->LoadCompaniaById($objetos->getIdProvincia());
				$usuario = $this->usuarios->LoadUsuarioById($objetos->getIdUsuarioHistoricoa());
				
				
				$arr = $json_output['rows'][] = array(
				       'IdCompania'             => $objetos->getIdCompania(),
				       'NombreCompania'         => $objetos->getNombreCompania(),
				       'IdServicio'             => $servicio->getNombreServicio(),
					   'cServicios'             => $objetos->getClasificacionS(),
                       'IdProvincia'            => $propiedades->getDescriccion(),
                       'FechaUsrCompania'       => $objetos->getFechaUsrCompania(),
                       'FechaHistorico'         => $objetos->getFechaHistorico(),
                       'IdUsuarioHistorico'     => $usuario->getNombreUsuario());
				
			}
		}

		echo json_encode($json_output);
	}

	
	
	
	public function dataps($id = false)
	{
	 
		$var = array(); 
		
		$page = $this->input->post('page') ? $this->input->post('page') : 1;
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : $this->input->post('sidx');
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'asc';
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 10;

		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;

		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		header("Cache-Control: no-cache, must-revalidate" );
		header("Pragma: no-" );

		$records = $this->mcompania->LoadCompanias();
		
		foreach ($records as $value) {
			
			     $idProseso = $this->mprocesos->loadLastProceso($value->getIdCompania());
			     $idEtapa = $this->mprocesos->loadProcesoById($idProseso);
			     
		         switch ($id){
				       case 1:
				   	      $var[] = $value->getIdCompania();
				       break;
				
				       case 12:
					       if ($idEtapa->getIdEtapa() == 2 || $idEtapa->getIdEtapa() == 3 || $idEtapa->getIdEtapa() == 9 || $idEtapa->getIdEtapa() == 15) {
						         $var[] = $value->getIdCompania();
					       }
					   break;
					
				       case 11:
					       if ($idEtapa->getIdEtapa() == 1) {
						         $var[] = $value->getIdCompania();
					       }
					   break;
					
					   case 10:
					      if ($idEtapa->getIdEtapa() == 16) {
						      $var[] = $value->getIdCompania();
					      }
				   	   break;
					
				       default:
					      if ($idEtapa->getIdEtapa() == 11 || $idEtapa->getIdEtapa() == 10) {
						        $var[] = $value->getIdCompania();
					      }
					   break;
				  
			      }
		}
		
		$records = $this->mcompania->loadCompaniasArray($var,$id,$start, $limit, $sortname, $sortorder);
		
		$totalRecords = count($records);

		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		    'page'		=> $page,
		    'total'		=> $totalPages,
		    'records'	=> $totalRecords,
		    'rows'		=> array());
		
		
		if($records != false)
		{
			foreach($records as $compania)
			{   
                 
				 $servicio = $this->mservicios->LoadServicioById($compania->getIdServicio());
				 $jurisdiccion = $this->mjurisdiccion->LoadjurisdiccionById($compania->getIdJurisdiccion());
				
				$usuario = $this->usuarios->LoadUsuarioById($compania->getIdUsuario());
		
				$proceso = $this->mprocesos->loadLastProceso($compania->getIdCompania());
				$proceso_obj=$this->mprocesos->loadProcesoById(intval($proceso));
					
				$estatus_obj = $this->mestatus->LoadEstatusById($proceso_obj->getIdEstatus());
				$etapa_obj = $this->metapas->LoadEtapaById($proceso_obj->getIdEtapa());
						
			    $ultimatransaccion = $this->chcalendario->calcularDias($proceso_obj->getFechaSys());
			    $dias = $this->chcalendario->calcularDias($compania->getFechaUsrCompania());
			
				$porciento_bruto = ($dias/$servicio->getTiempoServicio())*100;
			

				$colores_array_etapa = $this->mmodeloetapas->loadModeloEtapas();
				$colores_etapa = $colores_array_etapa[0];
                     
				$bruto_etapa = ($ultimatransaccion/$etapa_obj->GetTiempoEstimado())*100;
				
				if($bruto_etapa >= $colores_etapa->getVerdeModelo() and $bruto_etapa < $colores_etapa->getAmarilloModelo() or $bruto_etapa == 0 or $bruto_etapa < 0){
					$imagen_etapa="<img src='http://code.company24h.com/public/images/1.png'/>";
				}elseif ($bruto_etapa >= $colores_etapa->getAmarilloModelo() and $bruto_etapa < $colores_etapa->getRojoModelo() ){
					$imagen_etapa="<img src='http://code.company24h.com/public/images/2.png'/>";
				}else{
					$imagen_etapa="<img src='http://code.company24h.com/public/images/3.png'/>";
				}
                      
				$colores_array_servicio = $this->mmodeloservicios->loadModeloServicios();
				$colores_servicios = $colores_array_servicio[0];
      
				if (($porciento_bruto >= $colores_servicios->getVerdeModelo() and $porciento_bruto < $colores_servicios->getAmarilloModelo()) or $porciento_bruto <= 0){
					$imagen = "<img src='http://code.company24h.com/public/images/1.png'/>";
				}elseif ($porciento_bruto >=$colores_servicios->getAmarilloModelo() and $porciento_bruto < $colores_servicios->getRojoModelo()){
					$imagen = "<img src='http://code.company24h.com/public/images/2.png'/>";
				}else{
					$imagen = "<img src='http://code.company24h.com/public/images/3.png'/>";
				}
				
				$resp = $this->mresponsable->LoadEstatusById($compania->getIdResponsable());
                $fecha = explode('-',$compania->getFechaUsrCompania());
				
                $fecha_final = $fecha[2].'-'.$fecha[1].'-'.$fecha[0];
				
                $arr = $json_output['rows'][] = array('IdCompania'         => $compania->getIdCompania(),
				                                      'NombreCompania'     => "<strong>".$compania->getNombreCompania()."</strong>",
				                                      'IdServicio'         => $servicio->getNombreServicio(),
				                                      'IdJurisdiccion'     => $jurisdiccion->getNombreJurisdiccion(),
				                                      'FechaUsrCompania'   => $fecha_final,
				                                      'IdEtapa'            => $etapa_obj->GetNombre(),
				                                      'IdEstatus'          => $estatus_obj->getNombre(),
				                                      'Etapa'              => $imagen_etapa,
				                                      'Total'              => $imagen,
				                                      'User'               => $usuario->getUsernameUsuario(),
				                                      'dias'               => intval($ultimatransaccion),
				                                      'Responsable'        => $resp->getNombre(),
				                                      'conctato'           => $compania->getContacto());
                
               
			}
		}
          
		$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;

	}


	public function datahistorico2($id)
	{

		$page = $this->input->post('page') ? $this->input->post('page') : 1;
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : $this->input->post('sidx');
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'asc';
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 10;

		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;

		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		header("Cache-Control: no-cache, must-revalidate" );
		header("Pragma: no-cache" );
		$records = $this->mdgii->LoadHistorico($id,$this->input->post('nombre'),$start, $limit, $sortname, $sortorder);

		$totalRecords = $this->mdgii->GetCount($this->input->post('nombre'));

		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		'page'		=> $page,
		'total'		=> $totalPages,
		'records'	=> $totalRecords,
		'rows'		=> array()
		);
		if($records != false)
		{
			foreach($records as $compania)
			{

				$servicio=$this->mservicios->LoadServicioById($compania->getIdServicio());
				$jurisdiccion=$this->mjurisdiccion->LoadjurisdiccionById(
				$compania->getIdJurisdiccion());
				$tiemposervicio=$servicio->getTiempoServicio();
				$usuario=$this->usuarios->LoadUsuarioById($compania->getIdUsuario());
				$user=$usuario->getUsernameUsuario();
				$proceso=$this->mprocesos->loadLastProceso($compania->getIdCompania());
				$proceso=intval($proceso);
				if ($proceso=='' or !isset($proceso) or $proceso==0)
				{

					$proceso='Inicio';
					$etapa_str=$proceso;
					$estatus_str='Creada';
					$etapa_tiempo=1;
					$ultimatransaccion=$this->CalcularDias($compania->getFechaUsrCompania(),
					date('Y-m-d'));
				}
				else
				{
					$proceso_obj=$this->mprocesos->loadProcesoById($proceso);
					$etapa=$proceso_obj->getIdEtapa();
					$estatus=$proceso_obj->getIdEstatus();
					$estatus_obj=$this->mestatus->LoadEstatusById($estatus);
					$estatus_str=$estatus_obj->getNombre();
					$etapa_obj=$this->metapas->LoadEtapaById($etapa);
					$etapa_str=$etapa_obj->GetNombre();
					$etapa_tiempo=$etapa_obj->GetTiempoEstimado();
					$ultimatransaccion=$this->CalcularDias($proceso_obj->getFechaProceso(),
					date('Y-m-d'));
				}
				$dias=$this->CalcularDias($compania->getFechaUsrCompania(),date('Y-m-d'));
				$porciento_bruto=($dias/$tiemposervicio)*100;
				//echo $porciento_bruto."<br/>";

				$colores_array_etapa=$this->mmodeloetapas->loadModeloEtapas();
				$colores_etapa=$colores_array_etapa[0];


				$bruto_etapa=($ultimatransaccion/$etapa_tiempo)*100;
				if ($bruto_etapa>=$colores_etapa->getVerdeModelo() and $bruto_etapa < $colores_etapa->getAmarilloModelo() or $bruto_etapa==0 or $bruto_etapa<0)
				{
					$imagen_etapa="<img src='http://company24h.com/c24h/public/images/1.png'/>";
				}
				elseif ($bruto_etapa>=$colores_etapa->getAmarilloModelo() and $bruto_etapa<$colores_etapa->getRojoModelo() )
				{
					$imagen_etapa="<img src='http://company24h.com/c24h/public/images/2.png'/>";
				}
				else
				{
					$imagen_etapa="<img src='http://company24h.com/c24h/public/images/3.png'/>";
				}

				$colores_array_servicio=$this->mmodeloservicios->loadModeloServicios();
				$colores_servicios=$colores_array_servicio[0];

				if (($porciento_bruto>=$colores_servicios->getVerdeModelo() and $porciento_bruto < $colores_servicios->getAmarilloModelo()) or $porciento_bruto<=0)
				{
					$imagen="<img src='http://company24h.com/c24h/public/images/1.png'/>";
				}
				elseif ($porciento_bruto >=$colores_servicios->getAmarilloModelo() and $porciento_bruto < $colores_servicios->getRojoModelo())
				{
					$imagen="<img src='http://company24h.com/c24h/public/images/2.png'/>";
				}
				else
				{
					$imagen="<img src='http://company24h.com/c24h/public/images/3.png'/>";
				}
				$responsable=$compania->getIdResponsable();
				$resp=$this->mresponsable->LoadresponsableById($responsable);

				$fecha=explode('-',$compania->getFechaUsrCompania());
				$fecha_final=$fecha[2].'-'.$fecha[1].'-'.$fecha[0];
				$arr = $json_output['rows'][] = array
				(
				'IdCompania'=>$compania->getIdCompania(),
				'NombreCompania'=>"<strong>".$compania->getNombreCompania()."</strong>",
				'IdServicio' => $servicio->getNombreServicio(),
				'IdJurisdiccion'=>$jurisdiccion->getNombreJurisdiccion(),
				'FechaUsrCompania'=>$fecha_final,
				'IdEtapa'=>$etapa_str,
				'IdEstatus'=>$estatus_str,
				'Etapa'=>$imagen_etapa,
				'Total'=>$imagen,
				'User'=>$user,
				'Responsable'=>$resp->getNombreResponsable()
				);
			}
		}

		$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;
	}

	public function data2()
	{
		$page = $this->input->post('page') ? $this->input->post('page') : 1;
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') : $this->input->post('sidx');
		$sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'asc';
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 10;

		$start = $limit * $page - $limit;
		if($start < 0) $start = 0;

		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		header("Cache-Control: no-cache, must-revalidate" );
		header("Pragma: no-cache" );
		$records = $this->mcompania->LoadCompanias($this->input->post('nombre'),
		$this->input->post('tipo'),$this->input->post('jurisdiccion'),
		$start, $limit, $sortname, $sortorder);

		$totalRecords = $this->mcompania->GetCount($this->input->post('nombre'));

		$totalPages = ceil($totalRecords/$limit);
		if ($page > $totalPages) $page = $totalPages;

		$json_output = array(
		'page'		=> $page,
		'total'		=> $totalPages,
		'records'	=> $totalRecords,
		'rows'		=> array()
		);
		if($records != false)
		{
			foreach($records as $compania)
			{

				$servicio=$this->mservicios->LoadServicioById($compania->getIdServicio());
				$jurisdiccion=$this->mjurisdiccion->LoadjurisdiccionById(
				$compania->getIdJurisdiccion());
				$tiemposervicio=$servicio->getTiempoServicio();
				$usuario=$this->usuarios->LoadUsuarioById($compania->getIdUsuario());
				$user=$usuario->getUsernameUsuario();
				$proceso=$this->mprocesos->loadLastProceso($compania->getIdCompania());
				$proceso=intval($proceso);
				if ($proceso=='' or !isset($proceso) or $proceso==0)
				{

					$proceso='Inicio';
					$etapa_str=$proceso;
					$estatus_str='Creada';
					$etapa_tiempo=3;
					$ultimatransaccion=$this->CalcularDias($compania->getFechaSysCompania(),
					date('Y-m-d'));
				}
				else
				{
					$proceso_obj=$this->mprocesos->loadProcesoById($proceso);
					$etapa=$proceso_obj->getIdEtapa();
					$estatus=$proceso_obj->getIdEstatus();
					$estatus_obj=$this->mestatus->LoadEstatusById($estatus);
					$estatus_str=$estatus_obj->getNombre();
					$etapa_obj=$this->metapas->LoadEtapaById($etapa);
					$etapa_str=$etapa_obj->GetNombre();
					$etapa_tiempo=$etapa_obj->GetTiempoEstimado();
					$ultimatransaccion=$this->CalcularDias($proceso_obj->getFechaSys(),
					date('Y-m-d'));
				}
				$dias=$this->CalcularDias($compania->getFechaSysCompania(),date('Y-m-d'));
				$porciento_bruto=($dias/$tiemposervicio)*100;
				//echo $porciento_bruto."<br/>";

				$colores_array_etapa=$this->mmodeloetapas->loadModeloEtapas();
				$colores_etapa=$colores_array_etapa[0];


				$bruto_etapa=($ultimatransaccion/$etapa_tiempo)*100;
				if ($bruto_etapa>=$colores_etapa->getVerdeModelo() and $bruto_etapa < $colores_etapa->getAmarilloModelo() or $bruto_etapa==0 or $bruto_etapa<0)
				{
					$imagen_etapa="<img src='http://company24h.com/c24h/public/images/1.png'/>";
				}
				elseif ($bruto_etapa>=$colores_etapa->getAmarilloModelo() and $bruto_etapa<$colores_etapa->getRojoModelo() )
				{
					$imagen_etapa="<img src='http://company24h.com/c24h/public/images/2.png'/>";
				}
				else
				{
					$imagen_etapa="<img src='http://company24h.com/c24h/public/images/3.png'/>";
				}

				$colores_array_servicio=$this->mmodeloservicios->loadModeloServicios();
				$colores_servicios=$colores_array_servicio[0];

				if (($porciento_bruto>=$colores_servicios->getVerdeModelo() and $porciento_bruto < $colores_servicios->getAmarilloModelo()) or $porciento_bruto<=0)
				{
					$imagen="<img src='http://company24h.com/c24h/public/images/1.png'/>";
				}
				elseif ($porciento_bruto >=$colores_servicios->getAmarilloModelo() and $porciento_bruto < $colores_servicios->getRojoModelo())
				{
					$imagen="<img src='http://company24h.com/c24h/public/images/2.png'/>";
				}
				else
				{
					$imagen="<img src='http://company24h.com/c24h/public/images/3.png'/>";
				}
				$responsable=$compania->getIdResponsable();
				$resp=$this->mresponsable->LoadresponsableById($responsable);

				$fecha=explode('-',$compania->getFechaSysCompania());
				$fecha_final=$fecha[2].'-'.$fecha[1].'-'.$fecha[0];
				$arr = $json_output['rows'][] = array
				(
				'IdCompania'=>$compania->getIdCompania(),
				'NombreCompania'=>"<strong>".$compania->getNombreCompania()."</strong>",
				'IdServicio' => $servicio->getNombreServicio(),
				'IdJurisdiccion'=>$jurisdiccion->getNombreJurisdiccion(),
				'FechaUsrCompania'=>$fecha_final,
				'IdEtapa'=>$etapa_str,
				'IdEstatus'=>$estatus_str,
				'Etapa'=>$imagen_etapa,
				'Total'=>$imagen,
				'User'=>$user,
				'Responsable'=>$resp->getNombreResponsable(),
				'conctato'=>$compania->getContacto()
				);
			}
		}

		$a=json_encode($json_output);
		$a=str_replace('\\','',$a);
		echo $a;
	}

	public function procesos_data($idCompania = false)
	{
		$page = $this->input->post('page') ? $this->input->post('page') : 1;
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') :'IdCompania';
		$sortorder = $this->input->post('sord') ? $this->input->post('sord'):'DescripcionProceso';
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 10;
		$start = $limit * $page - $limit;
		
		if ($idCompania == false){
			  if ($this->input->post('id_compania') > 0) {
			    $compani = $this->input->post('id_compania');
			    $ciGestion = false;
		     }else{
			    $compani = $this->session->userdata('COMPANIA_CI');
			    $ciGestion = true;  
		     } 
		}else{
			$compani = $idCompania;
			$ciGestion = false;
		}
		
		

		$json_output = array(
		           'page'	   => 1,
		           'total'	   => 1,
		           'records'   => 0,
		           'rows'	   => array());

		if($compani)
		{
			
			if($start < 0) $start = 0;

			header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
			header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
			header("Cache-Control: no-cache, must-revalidate" );
			header("Pragma: no-cache" );
			
			$records = $this->mprocesos->LoadProcesos($compani);
			
			$referencia = $this->mcompania->LoadCompaniaById($compani);
			
			$totalRecords = count($referencia);
			
			if ($totalRecords>0)
			{
				$totalPages = ceil($totalRecords/$limit);
				if ($page > $totalPages) $page = $totalPages;

				$json_output = array(
				   'page'		=> $page,
				   'total'		=> $totalPages,
				   'records'	=> $totalRecords,
				   'rows'		=> array());
				
				$proceso = $this->mprocesos->loadLastProceso($compani);
				$proceso_obj = $this->mprocesos->loadProcesoById(intval($proceso));
				$etapa_obj = $this->metapas->LoadEtapaById($proceso_obj->getIdEtapa());
				

				$ultimatransaccion=$this->chcalendario->calcularDias($referencia->getFechaUsrCompania());

				if (!$ultimatransaccion or !isset($ultimatransaccion) or $ultimatransaccion<0){
					$ultimatransaccion="02";
				}
				if($records != false){
					$i=0;
					foreach($records as $proceso){
						
						if ($ciGestion == true) {
							  if ($proceso_obj->getIdEtapa() != $proceso->getIdEtapa())
							        continue;
						}
						
						if ($i == 0){
							
							$ultimatransaccion = $this->chcalendario->calcularDias($referencia->getFechaUsrCompania(), $proceso->getFechaProceso());
							$fecha_anterior=$proceso->getFechaProceso();
							
						}else{
							   $ultimatransaccion = $this->chcalendario->calcularDias($fecha_anterior,$proceso->getFechaProceso());
							     
							     if ($ultimatransaccion == ''){
								           $ultimatransaccion="02";
							     }

							   $fecha_anterior=$proceso->getFechaProceso();
						 }

						$i++; 
						
						$etapa = $this->metapas->LoadEtapaById($proceso->getIdEtapa());
						$estatus = $this->mestatus->LoadEstatusById($proceso->getIdEstatus());
						$use = $this->usuarios->LoadUsuarioById($proceso->getIdUsuario());
						$tipoSeguimiento = $this->mtiposeguimientos->loadTipoSeguimientoById($proceso->getIdTipoSeguimiento());

						$fechar = explode(' ',$proceso->getFechaSys());
						$fechar=explode('-',$fechar[0]);
						$fecha_finalr=$fechar[2].'-'.$fechar[1].'-'.$fechar[0];

						$fecha = explode(' ',$proceso->getFechaProceso());
						$fecha=explode('-',$fecha[0]);
						$fecha_final=$fecha[2].'-'.$fecha[1].'-'.$fecha[0];

						$json_output['rows'][] = array('IdProceso'            => $proceso->getIdProceso(),
						                               'IdEtapa'              => $etapa->GetNombre(),
						                               'IdEstatus'            => $estatus->getNombre(),
						                               'DescripcionProceso'   => $proceso->getDescripcion(),
						                               'FechaProceso'         => $fecha_final,
						                               'FechaProcesoR'        => $fecha_finalr,
						                               'Dias'                 => $proceso->getDias(),
						                               'Comentario'           => $use->getNombreUsuario(),
													   'IdTipoSeguimiento'	  => $tipoSeguimiento->getMTipoSeguimiento());
													   
					
					}
				}
			}
			
			$this->session->set_userdata('COMPANIA',$compani);
			echo json_encode($json_output);
		}
	}

	
	public function procesos_data2()
	{
		$page = $this->input->post('page') ? $this->input->post('page') : 1;
		$sortname = $this->input->post('sidx') ? $this->input->post('sidx') :'IdCompania';
		$sortorder = $this->input->post('sord') ? $this->input->post('sord'):'DescripcionProceso';
		$limit = $this->input->post('rows') ? $this->input->post('rows') : 10;
		$start = $limit * $page - $limit;

		$json_output = array
		(
		'page'		=> 1,
		'total'		=> 1,
		'records'	=> 0,
		'rows'		=> array()
		);

		if($this->input->post('id_compania'))
		{
			if($start < 0) $start = 0;

			header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
			header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
			header("Cache-Control: no-cache, must-revalidate" );
			header("Pragma: no-cache" );
			$records = $this->mprocesos->LoadProcesos($this->input->post('id_compania'));

			$totalRecords = $this->mprocesos->GetCount($this->input->post('id_compania'));
			if ($totalRecords>0)
			{
				$totalPages = ceil($totalRecords/$limit);
				if ($page > $totalPages) $page = $totalPages;

				$json_output = array
				(
				'page'		=> $page,
				'total'		=> $totalPages,
				'records'	=> $totalRecords,
				'rows'		=> array()
				);
				$proceso=$this->mprocesos->loadLastProceso($this->input->post('id_compania'));
				$proceso=intval($proceso);
				$proceso_obj=$this->mprocesos->loadProcesoById($proceso);
				$etapa=$proceso_obj->getIdEtapa();
				$etapa_obj=$this->metapas->LoadEtapaById($etapa);
				$etapa_str=$etapa_obj->GetNombre();
				$etapa_tiempo=$etapa_obj->GetTiempoEstimado();

				$ultimatransaccion=$this->CalcularDias($proceso_obj->getFechaSys(),
				date('Y-m-d'));

				if (!$ultimatransaccion or !isset($ultimatransaccion) or $ultimatransaccion<0)
				{
					$ultimatransaccion="00";
				}
				if($records != false)
				{
					$i=0;
					foreach($records as $proceso)
					{
						if ($i==0)
						{
							$ultimatransaccion="00";
							$fecha_anterior=$proceso->getFechaSys();
						}
						else
						{
							$ultimatransaccion=$this->CalcularDias($fecha_anterior,
							$proceso->getFechaSys());
							if ($ultimatransaccion=='')
							{
								$ultimatransaccion="00";
							}

							$fecha_anterior=$proceso->getFechaSys();
						}

						$i++;
						$etapa = $this->metapas->LoadEtapaById($proceso->getIdEtapa());
						$estatus=$this->mestatus->LoadEstatusById($proceso->getIdEstatus());

						$fecha=explode('-',$proceso->getFechaSys());
						$fecha_final=$fecha[2].'-'.$fecha[1].'-'.$fecha[0];

						$json_output['rows'][] = array(
						'IdProceso'=>$proceso->getIdProceso(),
						'IdEtapa' => $etapa->GetNombre(),
						'IdEstatus' => $estatus->getNombre(),
						'DescripcionProceso' => $proceso->getDescripcion(),
						'FechaProceso' =>$fecha_final,
						'dias'=>$proceso->getDias(),
						'Comentario' => $proceso->getComentario()
						);
					}
				}
			}
			else
			{
				$json_output = array
				(
				'page'		=> 1,
				'total'		=> 1,
				'records'	=> 1,
				'rows'		=> array()
				);

				$json_output['rows'][] = array(
				'IdEtapa' => 'Iniciada',
				'IdEstatus' => 'Normal',
				'DescripcionProceso' =>'La compania fue Iniciada',
				'FechaProceso' => '00/00/0000',
				'dias'=>'0',
				'Comentario' => 'Informacion Generada'
				);
			}
			$this->session->set_userdata('COMPANIA',$this->input->post('id_compania'));
			echo json_encode($json_output);
		}
	}
	
	public function trasladar()
	{
		 $companias = $this->mcompania->loadCompanyTrasladar();
		 
		 foreach ($companias as $compania){
		 	
		 	 $fecha = date('Y-m-d H:i:s');
		
		     $data = array(
		              "NombreCompania"       => $compania->getNombreCompania(),
		              "IdServicio"           => $compania->getIdServicio(),
		              "IdJurisdiccion"       => $compania->getIdJurisdiccion(),
		              "FechaUsrCompania"     => $compania->getFechaUsrCompania().' 00:00:00',
		              "FechaSysCompania"     => $compania->getFechaSysCompania().' 00:00:00',
		              "IdUsuario"            => $compania->getIdUsuario(),
		              "IdUsuarioHistorico"   => $compania->getIdUsuario(),
		              "IdProvincia"          => $compania->getIdProvincia(),
		              "Telefono1Compania"    => $compania->getTelefono1Compania(),
		              "Telefono2Compania"    => $compania->getTelefono2Compania(),
		              "EmailCompania"        => $compania->getEmailCompania(),
		              "EstadoCompania"       => '1',
		              "Contacto"             => $compania->getContacto(),
		              "FechaHistorico"       => $fecha,
		              "IdCompania"           => $compania->getIdCompania()
		              );
             
		              
		    if ($this->companiahistorico->CompaniaHistoricoAdd($data) == true) {
         	
         	   if($this->mcompania->eliminar($compania->getIdCompania()) == true) {
				    echo $compania->getIdCompania().'</br>';
		        } 
            }         
		 	
		 }
	}

	 /**
	  * @param String $arrayData
	  * Retorna un string con los id de los servicios 
	  * 
	  */
	
	public function finalizar($arrayData = false)
	{
		
		$arrayData = explode("-", $arrayData);
          
		
		foreach ($arrayData as $k){
			$pros = $this->mprocesos->loadLastProceso($k);
			$pro = $this->mprocesos->loadProcesoById($pros);
			
			$ultimatransaccion = $this->chcalendario->calcularDias($pro->getFechaSys());
			
			$this->mprocesos->upDateProceso($pros,array('dias'      => $ultimatransaccion,
		                                                'Fechas'    => date('Y-m-d H:i:s')));
			
			$compania = $this->mcompania->LoadCompaniaById($k);
			
			$mod = $pro->getIdEtapa();
			
					
		    $data = array(
		              "NombreCompania"       => $compania->getNombreCompania(),
		              "IdServicio"           => $compania->getIdServicio(),
		              "IdJurisdiccion"       => $compania->getIdJurisdiccion(),
		              "FechaUsrCompania"     => $compania->getFechaUsrCompania().' '.date('H:i:s'),
		              "FechaSysCompania"     => $compania->getFechaSysCompania().' '.date('H:i:s'),
		              "IdUsuario"            => $compania->getIdUsuario(),
		              "IdUsuarioHistorico"   => $this->session->userdata('LOGGED_USR_ID'),
		              "IdProvincia"          => $compania->getIdProvincia(),
		              "Telefono1Compania"    => $compania->getTelefono1Compania(),
		              "Telefono2Compania"    => $compania->getTelefono2Compania(),
		              "EmailCompania"        => $compania->getEmailCompania(),
		              "EstadoCompania"       => '1',
		              "Contacto"             => $compania->getContacto(),
		              "FechaHistorico"       => date('Y-m-d H:i:s'),
		              "IdCompania"           => $k);
		           
		              if ($this->companiahistorico->CompaniaHistoricoAdd($data) == true) {
		                    if($this->mcompania->eliminar($k) == true) {
				                        $mensage = 'Los servicios han sido eliminados';
		                   }
		                   
		              }
			
			}
	
           $this->session->set_flashdata('error_title', $mensage);
		   redirect('main_tran');

	}

	public function finalizarv($id)
	{
		$this->load->view('main',array('content_page'=>'fventas','menutop' => 1,'idcompany'=>$id));
	}

	public function historico()
	{
		$this->load->view('main',array('content_page'=>'historico_list','menutop' => 0));
	}
	
	public function detalleHistorico($id = false)
	{
		$objetos = $this->companiahistorico->loadComapniaHistoricoById($id);
		$servicio = $this->mservicios->LoadServicioById($objetos->getIdServicio());
		$juridiccion = $this->mjurisdiccion->LoadjurisdiccionById($objetos->getIdJurisdiccion());
		$usuarioI = $this->usuarios->LoadUsuarioById($objetos->getIdUsuario());
		$usuarioF = $this->usuarios->LoadUsuarioById($objetos->getIdUsuarioHistoricoa());
		$provincia = $this->mprovincia2->LoadCompaniaById($objetos->getIdProvincia());

		$dato = array(
                            'referencia'        => $objetos->getNombreCompania(),
                            'servicio'          => $servicio->getNombreServicio(),
						    'classerv'          => $objetos->getClasificacionS(),
                            'juridiccion'       => $juridiccion->getNombreJurisdiccion(),
                            'fechaI'            => $objetos->getFechaUsrCompania(),
                            'fechaH'            => $objetos->getFechaHistorico(),
                            'usuarioI'          => $usuarioI->getNombreUsuario(),
                            'usuarioF'          => $usuarioF->getNombreUsuario(),
                            'provincia'         => $provincia->getDescriccion(),
                            'telefono1'         => $objetos->getTelefono1Compania(),
                            'telefono2'         => $objetos->getTelefono2Compania(),
                            'email'             => $objetos->getEmailCompania(),
                            'contenido'         => $objetos->getContacto() 
		);
		 
		$this->load->view('main',array('content_page'=>'detallehistoricoc','menutop' => 0, 'data'=> $dato));
	}

	function historicodgii()
	{
		$rs=$this->mcompania->LoadHistorico();
		$this->load->view('main',array('content_page'=>'historicodgii','menutop' => 0
		));
	}

	function trucate()
	{
		$this->load->view('main',array('content_page'=>'trucate','menutop' => 0,));
	}

	function saveEntre()
	{
		if (@$this->input->post('company') > 0) {
				
			$comp = $this->input->post('company');
			$fecha = $this->input->post('solicitud');
			 
			$fecha2 = explode('/',$fecha);

			$fecha = $fecha2[2].'-'.$fecha2[0].'-'.$fecha2[1].' 00:00:00';
			 
			$rep = $this->input->post('referencia');
			$comentario = $this->input->post('comentario');
			$usuario = $this->input->post('usuario');
			 
			if ($this->entrega->createSalVentas($fecha,$rep,$comentario,$comp,$usuario) != false) {
				$data = array('EstadoCompania'=>1,
              	              'FechaHistorico'=>$fecha);
				$this->mcompania->UpDateDos($comp,$data);
				 
				redirect('main_tran');
			}

		}
	}
	
	

	//inicio de reporte
	/**
	function reparaFecha(){

	$records = $this->mcompania->LoadCompanyReport();

	foreach ($records as $data){
		


		
	$arrayData =  $this->dataProceso($data->getIdCompania());

	foreach ($arrayData as $prose){
	$array[$data->getIdCompania()][] = array(
	0=>$prose->getIdProceso(),
	1=>$prose->getFechaSys(),
	2=>$prose->getEstadoCompania()
	);
	 
	 
	}


	}

	foreach ($array as $k){
	$contador = count($k);
	for ($i = 0; $i < $contador;$i++){
	if ($i != $contador-1){
	$this->mprocesos->updateFechaArr($k[$i][0],$k[$i+1][1]);
	 
	}else{
	if ($k[$i][2] != 1 && $k[$i][2] == 2 ) {

	$this->mprocesos->updateFechaArr($k[$i][0],'0000-00-00 00:00:00');
	 
	}else{

	}
	}

	}
	 
	 
	}
	 
	$this->load->view('main',array('content_page'=>'datarepor','menutop' => 1,'data'=>$array));
	}

	function dataProceso($id){
	return $this->mprocesos->updataIdCompany($id);
	}

	**/

	public function dataRipor($buscar = false){
                 
		       $page = $this->input->post('page') ? $this->input->post('page') : 1;
		       $sortname = $this->input->post('sidx') ? $this->input->post('sidx') : $this->input->post('sidx');
		       $sortorder = $this->input->post('sord') ? $this->input->post('sord') : 'asc';
		       $limit = $this->input->post('rows') ? $this->input->post('rows') : 10;

		       $start = $limit * $page - $limit;
		       if($start < 0) $start = 0;

		       header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
		       header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT" );
		       header("Cache-Control: no-cache, must-revalidate" );
		       header("Pragma: no-cache" );
		       
		      if ($buscar == false) {
		      	  $fechaA = "01/01/2011";
		      	  $fechaB = date("m/d/Y"); 
		      	  $etapaF = 3;
		      	  $modoF = 0;
		      	  $agrupadoF = TRUE;    
		      }else{
		      	
		          $filtros = explode("-", $buscar);
		       
		           if (strlen($filtros[2]) > 3){
		              $fechaA = explode(".", $filtros[2]);
		              $fechaA = $fechaA[0]."/".$fechaA[1]."/".$fechaA[2];  	
		          }else{
		       	      $fechaA = "01/01/2011";
		          }
		          
		          if (strlen($filtros[3]) > 3){
		               $fechaB = explode(".", $filtros[3]);
		               $fechaB = $fechaB[0]."/".$fechaB[1]."/".$fechaB[2];	
		           }else{
		       	       $fechaB = date("m/d/Y");  
		           }
		           
		            
		            if ($filtros[0] > 0) 
		                  $etapaF = $filtros[0];
		            else  
		                 $etapaF = 3;

		            if ($filtros[4] > 0)
		                  $modoF = $filtros[4];
		            else  
		               $modoF = 0;

		            if ($filtros[1] == FALSE)
		                  $agrupadoF = FALSE;
		            else
		               $agrupadoF = TRUE;       
       		      	
		      }
                 
		        $_fechaA = explode("/",$fechaA);
		        $fechaA = $_fechaA[2]."-".$_fechaA[0]."-".$_fechaA[1];
		        
		        $_fechaB = explode("/",$fechaB);
		        $fechaB = $_fechaB[2]."-".$_fechaB[0]."-".$_fechaB[1];

		        
		        
		       $datosCompania = $this->mscore->dataRScore($etapaF, $modoF, $fechaA, $fechaB, $agrupadoF);

		       
		       $totalRecords = count($datosCompania);

		       $totalPages = ceil($totalRecords/$limit);
		            if ($page > $totalPages) $page = $totalPages;

		       $json_output = array(
		                            'page'		=> $page,
		                            'total'		=> $totalPages,
		                            'records'	=> $totalRecords,
		                            'rows'		=> array());

		       if(count($datosCompania) > 0) {
				     foreach ($datosCompania as $ojt){
                       foreach($ojt as $datosTotal) {
                                  
                       	    for ($i = 0; $i < count($datosTotal); $i++){
                       	    	
                       	    	 $arr = $json_output['rows'][] = array(
				                                                      'IdProseso'       => $datosTotal[$i]["idProseso"],
					                                                  'Etapa'           => $datosTotal[$i]["etapa"],
					                                                  'Estatus'         => $datosTotal[$i]["estatus"],
					                                                  'Usuario'         => $datosTotal[$i]["usuario"],
					                                                  'Referencia'      => $datosTotal[$i]["referencia"],
					                                                  'HoraDurada'      => $datosTotal[$i]["horaDurada"],
					                                                  'HoraPerdamiti'   => $datosTotal[$i]["horaPermitida"],
					                                                  'HoraPasada'      => $datosTotal[$i]["horaPasada"],
		                                                              'Puntuacion'      => $datosTotal[$i]["puntuacion"],
		                                                              'HE'              => $datosTotal[$i]["horaExtras"],);
                       	    }
                       	   
			          }
				    }
		   }

		  $a=json_encode($json_output);
		  $a=str_replace('\\','',$a);
		  echo $a;

		//$this->load->view('main',array('content_page'=>'datarepor','menutop' => 1,'data'=>$a));
	}



	function datolistareport(){
		$this->load->view('main',array('content_page'=>'datarepor','menutop' => 0));
	}

	function grafico(){
		//$this->load->view('mainReporte', array('content_page' => 'dashboard_seguimiento','estatus'=>$this->tipoEstatus(),'estapa'=>$this->tipoEstapa(),'responsable'=>$this->tipoResponsable(),'color'=>$this->tipoColor($this->input->post('fechasysoruser')),'menutop'=>1));
	}


	function temoestato($id){
			
	}


	function dataProceso($id,$etapa,$fecha1,$fecha2,$status){
		               return $this->mprocesos->updataIdCompany($id,$etapa,$fecha1,$fecha2,$status);
	}

}
?>
